home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / gg / guile-1.4.1.lha / NEWS.goops < prev    next >
Text File  |  2001-03-10  |  5KB  |  199 lines

  1. GOOPS NEWS --- history of user-visible changes.  -*- text -*-
  2. Copyright (C) 1999, 2001 Free Software Foundation, Inc.
  3. See the end for copying conditions.
  4.  
  5. Please send GOOPS bug reports to bug-guile@gnu.org.
  6.  
  7. Changes since GOOPS 1.0:
  8.  
  9. * Changes to the distribution
  10.  
  11. ** Updated the NEWS file with some lacking history
  12.  
  13. ** Important bugfix to the configure script
  14.  
  15. ** Updated documentation to reflect new method syntax
  16.  
  17. * Changes to functions and syntax
  18.  
  19. ** define-method: New syntax mandatory.
  20.  
  21. The new method syntax described below under "Changes since GOOPS
  22. 0.1.6" is now mandatory.
  23.  
  24. If you have old code using the old syntax, import
  25. (oop goops old-define-method) before (oop goops):
  26.  
  27.   (use-modules (oop goops old-define-method) (oop goops))
  28.  
  29.  
  30. Changes since GOOPS 0.9.0:
  31.  
  32. * Changes to the distribution
  33.  
  34. ** Adaptations to changes in Guile
  35.  
  36. ** Bumped libgoopscore version number to 5.
  37.  
  38. ** Added a guile-oops manpage
  39.  
  40. * Changes to the object system
  41.  
  42. ** Bugfix: Made method memoization thread safe
  43.  
  44. ** Bugfix: Make sure body expansion works OK for methods.
  45.  
  46. ** Hopefully last fix to method dispatch.
  47.  
  48. * Changes to functions and syntax
  49.  
  50. ** New module: (oop goops internal)
  51.  
  52. Exports internal bindings.  Good to have when implementing new modules
  53. making use of GOOPS guts.
  54.  
  55. * Changes to the scm_interface
  56.  
  57. ** Avoid using C++ reserved words in goops.h
  58.  
  59.  
  60. Changes since GOOPS 0.1.8:
  61.  
  62. * Changes to the distribution
  63.  
  64. ** Start use version numbering on the libgoopscore library
  65.  
  66. * Changes to the object system
  67.  
  68. ** More fixes to dispatch on generic functions with rest arguments
  69.  
  70.  
  71. Changes since GOOPS 0.1.6:
  72.  
  73. * Changes to the distribution
  74.  
  75. ** Miscellaneous changes to documentation files
  76.  
  77. ** Adaptations to new error message templates (~S, ~A)
  78.  
  79. ** Adaptations to reorganization of types in Guile
  80.  
  81. ** General adaptations to Guile-1.4
  82.  
  83. * Changes to the object system
  84.  
  85. ** Fixed dispatch on generic functions with rest arguments
  86.  
  87. * Changes to functions and syntax
  88.  
  89. ** define-method:
  90.  
  91. Methods definitions now have a new syntax:
  92.  
  93. (define-method (NAME ARG-SPEC ...) BODY ...)
  94. (define-method (NAME ARG-SPEC ... . REST-ARG) BODY ...)
  95.  
  96.   ARG-SPEC ::= ARG-NAME | (ARG-NAME TYPE)
  97.   REST-ARG ::= ARG-NAME
  98.  
  99. The old syntax (define-method NAME (ARG-SPEC ...) BODY ...)
  100. will be around for a while.
  101.  
  102. ** New module: (oop goops save)
  103.  
  104. Contains functions for saving objects to and loading object from
  105. files.  (Please refer to comments at the top of the module.)
  106.  
  107. ** Bugfixes to getters
  108.  
  109. ** Bugfix: shallow-clone, deep-clone
  110.  
  111. ** compute-std-cpl
  112.  
  113. Modified to linearize according to the C3 algorithm in
  114. http://www.webcom.com/haahr/dylan/linearization-oopsla96.html.
  115. (Thanks to Michael Livshin.)
  116.  
  117. * Changes to the scm_ interface
  118.  
  119. ** Made C variables for system classes global
  120.  
  121. ** Fixed a memory leak associated with objects without slots
  122.  
  123.  
  124. Changes since GOOPS 0.1.4:
  125.  
  126. * Changes to functions and syntax
  127.  
  128. ** Bug fixes to getters and setters
  129.  
  130. ** New function: slot-definition-init-form
  131.  
  132. ** New generics: compute-getter-method, compute-setter-method
  133.  
  134.  
  135. Changes since GOOPS 0.1.2:
  136.  
  137. * Changes to the distribution
  138.  
  139. ** GOOPS 0.1.4 is dependent on Guile version >= 1.3.3
  140.  
  141. * Changes to functions and syntax
  142.  
  143. ** A new scheme for "forwarding" calls to a builtin to a generic function
  144.  
  145. It is now possible to extend the functionality of some Guile
  146. primitives by letting them defer a call to a GOOPS generic function on
  147. argument mismatch.  This functionality is enabled with the GOOPS
  148. primitive
  149.  
  150.   enable-primitive-generic! PRIMITIVE ...
  151.  
  152. [This primitive will disappear again in Guile-1.4 when all primitives
  153.  will be primitive generics.]
  154.  
  155. It is then possible to extend the primitive(s) by defining methods for
  156. them without loss of efficiency in normal evaluation.
  157.  
  158. Example:
  159.  
  160.   (use-modules (oop goops))
  161.   (enable-primitive-generic! +)
  162.   (define-method + ((x <string>) (y <string>))
  163.     (string-append x y))
  164.  
  165.   + will still be as efficient as usual in numerical calculations, but
  166.   can also be used for concatenating strings.
  167.  
  168.   Who will be the first one to extend Guile's numerical tower to
  169.   rationals?  :)
  170.  
  171.  
  172. Changes since GOOPS 0.1:
  173.  
  174. * Changes to functions and syntax
  175.  
  176. ** Corrected serious bugs in compute-slot-accessors and initialize <class>.
  177.  
  178.  
  179. Copyright information:
  180.  
  181. Copyright (C) 1999 Free Software Foundation, Inc.
  182.  
  183.    Permission is granted to anyone to make or distribute verbatim copies
  184.    of this document as received, in any medium, provided that the
  185.    copyright notice and this permission notice are preserved,
  186.    thus giving the recipient permission to redistribute in turn.
  187.  
  188.    Permission is granted to distribute modified versions
  189.    of this document, or of portions of it,
  190.    under the above conditions, provided also that they
  191.    carry prominent notices stating who last changed them.
  192.  
  193.  
  194. Local variables:
  195. mode: outline
  196. paragraph-separate: "[      ]*$"
  197. end:
  198.  
  199.